package com.ruoyi.order.mapper;

import com.ruoyi.order.domain.OmsBillingRecords;
import com.ruoyi.order.vo.StoreBilling;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 账单记录Mapper接口
 *
 * @author 微信 zhuan237524947
 * @date 2020-07-24
 */
public interface OmsBillingRecordsMapper {
    /**
     * 查询账单记录
     *
     * @param id 账单记录ID
     * @return 账单记录
     */
    public OmsBillingRecords selectOmsBillingRecordsById(Long id);

    /**
     * 查询账单记录列表
     *
     * @param omsBillingRecords 账单记录
     * @return 账单记录集合
     */
    public List<OmsBillingRecords> selectOmsBillingRecordsList(OmsBillingRecords omsBillingRecords);

    /**
     * 新增账单记录
     *
     * @param omsBillingRecords 账单记录
     * @return 结果
     */
    public int insertOmsBillingRecords(OmsBillingRecords omsBillingRecords);

    /**
     * 修改账单记录
     *
     * @param omsBillingRecords 账单记录
     * @return 结果
     */
    public int updateOmsBillingRecords(OmsBillingRecords omsBillingRecords);

    /**
     * 删除账单记录
     *
     * @param id 账单记录ID
     * @return 结果
     */
    public int deleteOmsBillingRecordsById(Long id);

    /**
     * 批量删除账单记录
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteOmsBillingRecordsByIds(Long[] ids);

    /**
     * 查询店铺账单总数
     *
     * @param params 查询参数
     * @return 返回店铺账单总数
     */

    int queryStoreBillingsCount(Map<String, Object> params);

    /**
     * 查询店铺账单信息
     *
     * @param params 查询参数
     * @return 返回店铺账单
     */

    List<StoreBilling> queryStoreBillings(Map<String, Object> params);

    /**
     * 查询店铺账单对账记录总数
     *
     * @param params 参数
     * @return 返回店铺栈单对账记录总数
     */

    int queryStoreBillingRecordsCount(Map<String, Object> params);

    /**
     * 查询店铺账单对账记录
     *
     * @param params 参数
     * @return 返回店铺账单对账记录
     */

    List<OmsBillingRecords> queryStoreBillingRecords(Map<String, Object> params);

    /**
     * 查询收入
     *
     * @param params 查询参数
     * @return 返回收入
     */

    BigDecimal queryStoreInCome(Map<String, Object> params);

    /**
     * 查询支出
     *
     * @param params 查询参数
     * @return 返回支出
     */

    BigDecimal queryStoreExpenses(Map<String, Object> params);

    /**
     * 查询店铺账单对账记录总数
     *
     * @param params 参数
     * @return 返回店铺栈单对账记录总数
     */

    int queryBillingRecordsCount(Map<String, Object> params);

    /**
     * 查询店铺账单对账记录
     *
     * @param params 参数
     * @return 返回店铺账单对账记录
     */

    List<OmsBillingRecords> queryBillingRecords(Map<String, Object> params);

    /**
     * 设置店铺账单状态为已结算
     *
     * @param ids 账单记录id
     * @return 成功>0 失败0
     */
    int updateStatus(List<Long> ids);


}
